#pragma once
#include "InfoManagerTemplate.h"
#include "FiniteState.h"
#include "FSM.h"
#include "StateRun.h"
#include "BaseEntity.h"

void FSMTest()
{
	CFSM_T<CState> Container(10);
	BaseEntity myEntity(Container);
	CGEStateRun*  pStateRun= new CGEStateRun(myEntity,GEStateID_Run);
	CGEStateWalk*  pStateWalk= new CGEStateWalk(myEntity,GEStateID_Walk);
	
	CGEStateStop* pStateStop = new CGEStateStop(myEntity,GEStateID_Stop);
	Container.Add(pStateRun,pStateRun->ID());
	Container.Add(pStateWalk,pStateWalk->ID());
	Container.Add(pStateStop,pStateStop->ID());
	CState* pState = Container.GetContainer().GetByID(1);
	Container.Start(GEStateID_Stop);
	Container.Refresh();
	CGEEvent BeginEventWalk(EventID_StartWalk);
	myEntity.Response(BeginEventWalk);
	myEntity.Heartbeat(11);


	
}